/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package apus.persistence.proxy;

import apus.entity.PhoneNumber;
import apus.entity.Subscriber;
import apus.persistence.SubscriberDAO;
import java.util.List;

/**
 * The <code>SubscriberProxy</code> class represents APUS subscriber-proxy.
 * @author  Maxim Vasilevsky
 * @author  Roman Dyatkovsky
 * @since APUS v0.5
 * @see AbstractProxy
 * @see Subscriber
 */
public abstract class SubscriberProxy<TypeEn extends Subscriber,TypeDAO extends SubscriberDAO<TypeEn>> extends AbstractProxy<TypeEn, TypeDAO> implements Subscriber{

    public SubscriberProxy(Class<TypeDAO> clazz) {
        super(clazz);
    }
    
    @Override
    public String getAddress() {
        return getProxy().getAddress();
    }

    @Override
    public void setAddress(String address) {
        getProxy().setAddress(address);
    }

    @Override
    public String getName() {
        return getProxy().getName();
    }

    @Override
    public void setName(String name) {
        getProxy().setName(name);
    }

    @Override
    public List<PhoneNumber> getPhoneNumbers() {
        return getProxy().getPhoneNumbers();
    }

    @Override
    public void setPhoneNumbers(List<PhoneNumber> phoneNumbers) {
        getProxy().setPhoneNumbers(phoneNumbers);
    }

    @Override
    public void addPhoneNumber(PhoneNumber number) {
        getProxy().addPhoneNumber(number);
    }
    
    @Override
    public String toString() {
        return getProxy().toString();
    }

    @Override
    public abstract String getSubscriberType();

}